<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>9.26作业</title>
  </head>
  <body>
    <script>
      // 1.移除数组 [1, 2, 3, 4, 2] 中的2。不要直接修改数组，结果返回新的数组
      /*
var a=[1, 2, 3, 4, 2]
var b=[]
var n=0//2的个数
for(let i=0;i<a.length;i++){
if(a[i]===2){
  n++
}
}
for(let i=0;i<n;i++){
  b[0]=a.indexOf(2)
  b[1]=a.indexOf(2,b[0]+1)
}
console.log(a.slice(0,b[0]).concat(a.slice(b[0]+1,b[1])));
*/

      // 2.定义一个函数,能在数组 [1, 2, 3, 4, 2] 的 "2"后面添加元素 "JavaScript"。不要直接修改数组 arr，结果返回新的数组
/*
var a=[1, 2, 3, 4, 2],b=a
for(let i=0;i<a.length;i++){
if(a[i]===2){
  b.splice(i+1,0,"JavaScript")
}
}
console.log(b);
*/
      // 3.统计数组 [1, 2, 3, 4, 2] 中2出现的次数
/*
var a=[1, 2, 3, 4, 2]
var n=0
for(let i=0;i<a.length;i++){
if(a[i]===2)n++
}
console.log('2出现的次数为',n);
*/
      // 4.找出数组 [1, 2, 3, "JavaScript", 4, "JavaScript", 2, 4, "JavaScript"] 中重复出现过的元素,并用数组将重复元素装起来输出
/*
var a=[1, 2, 3, "JavaScript", 4, "JavaScript", 2, 4, "JavaScript"]
var s=[]
for(let i=0;i<a.length;i++){
 if(a.includes(a[i],i+1)&& !s.includes(a[i])){
  s.push(a[i])
 }
}//lastIndexOf与indexOf结合，比较下标，不同则元素有重复
console.log(s);
*/
      // 5.在数组里面输出年龄小于17的对象
      let arr5 = [
        {
          name: '111',
          sex: 'boy',
          age: 18,
        },
        {
          name: '222',
          sex: 'girl',
          age: 17,
        },
        {
          name: '333',
          sex: 'boy',
          age: 16,
        },
        {
          name: '444',
          sex: 'girl',
          age: 15,
        },
        {
          name: '555',
          sex: 'boy',
          age: 20,
        },
      ];
      /*
      for(let i=0;i<arr5.length;i++){
      if(arr5[i].age<17){
        console.log(arr5[i])
      }
    }*/  
      // 6. 数组扁平化, 把数组[1, [2, [3, 4, 5]]]转成[1, 2, 3, 4，5]
      /*
      var a=[1, [2, [3, 4, 5]]]
      //a.flat(Infinity)//数组平铺
      function f(a){
      let b=[]
      for(let i=0;i<a.length;i++){
        if(!Array.isArray(a[i]))b.push(a[i])
        else{
        b=b.concat(f(a[i]))
      }
      }
      return b
    }
    console.log(f(a));
    */
      // 7. 使用reduce实现[1,2,3,4,9]数组中所有成员的和
    /*var a=[1,2,3,4,9]
    function f(a,b){
      return a+b
    }
    console.log(a.reduce(f));
    */
      // 8. 数组去重的方法 (4种)
      var a=[1,2,1,4,2,'1',2]
      //法一
      
      var aa=a.sort()
      for(let i=0;i<aa.length;i++){
        if(aa.indexOf(aa[i])!=aa.lastIndexOf(aa[i])){
          aa.splice(aa.indexOf(aa[i])+1,aa.lastIndexOf(aa[i])-aa.indexOf(aa[i]))
        }
      }
      console.log(aa);
      //2
      
    </script>
  </body>
</html>